package com;
/**
 * 接口是所有行为的抽象，面向接口编程，目的是为了让程序更加易于维护，扩展性更强，接口只定义标准，而非具体实现
 * 接口的概念：
 *1.接口是一组行为的规范，定义，没有实现（jdk1.8之后就有了默认方法）
 * 2.使用接口，可以让我们的程序更加有利于变化。
 * 3.接口是面向对象编程体系中的思想精髓之,
 * 4.面向对象设计法则：基于接口编程
 *接口的使用规则：
 * （1）定义一个接口，使用interface关键字
 * （2）定义一个接口中，只能定义常量，抽象方法，JDK1.8之后可以定义默认的实现方法
 * （3）接口可以继承多个接口，extends xx,xxx
 * (4)一个具体类实现接口使用implements关键字
 * （5）一个类可以实现多个接口
 * （6）在接口中定义的方法没有声明访问修饰符，默认为public
 * (7)在接口中定义的方法没有声明访问修饰符，默认public
 * (8)接口不能有构造方法
 *
 * 面向对象设计原则
 * （1）对修饰关闭，对扩展开放
 * （2）面向接口编程
 *
 */
public class InterfaceTest {
    public static void main(String[] args) {
        Girl girl=new Girl();
        girl.eat();
        girl.sleep();
    }
}
interface IEat{
   // public abstract void eat();//接口中只能定义抽象方法
    void eat();//接口中定义的方法没有声明修饰符，默认为public abstract
    int num=10;
    public default void tt(){
        System.out.println("在JDK1.8之后的新特性，特供默认方法，可以被所有实现类继承");
    }
}

interface ISleep extends IEat {
    void sleep();

}
class Girl implements ISleep{

    @Override
    public void eat() {
        System.out.println("我爱吃香蕉");
    }

    @Override
    public void sleep() {
        System.out.println("有午睡的习惯");
    }
}